package com.songlanyun.modules.article.model.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.songlanyun.common.drive.ValueObject;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 文章表
 *
 * @author wuchao
 * @email sunlightcs@gmail.com
 * @date 2021-02-27 15:36:01
 */
@Data
public class ArticleDTO implements ValueObject {

    /**
     *
     */
    private Long id;
    /**
     * 文章标题
     */
    @Length(min = 1, max = 30, message = "文章标题长度在1-30个字之间")
    private String title;
    /**
     * 文章封面
     */
    @NotNull(message = "文章封面不能为空")
    private String cover;
    /**
     * 文章类型
     * 0：图文
     * 1：视频
     */
    @NotNull(message = "文章类型不能为空")
    private Integer articleType;
    /**
     * 课程id
     */
    @TableField(exist = false)
    @NotNull(message = "课程不能为空")
    private Long courseId;
    /**
     * 文章内容
     */
    private String content;
    /**
     * 视频地址
     */
    private String mediaAddress;
    /**
     * 文件大小
     */
    private Long mediaSize;
    /**
     * 播放时长（单位秒）
     */
    private Integer duration;

    /**
     * 初始阅读人数
     */
    @Min(value = 0, message = "人数最小为0")
    @Max(value = 99999999, message = "人数最大为99999999")
    private Integer initBrowseNum;
    /**
     * 初始点赞人数
     */
    @Min(value = 0, message = "人数最小为0")
    @Max(value = 99999999, message = "人数最大为99999999")
    private Integer initLikeNum;
    /**
     * 初始分享人数
     */
    @Min(value = 0, message = "人数最小为0")
    @Max(value = 99999999, message = "人数最大为99999999")
    private Integer initShareNum;

}
